package movilmax.sia_corp.action;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import movilmax.sia_corp.model.Listax;
import movilmax.sia_corp.model.Usuario;

import apli.conectar.Conectar;
import basedatos.BaseDatos;
import basedatos.Resultado;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class CargarListaFallas extends ActionSupport{

	private static final long serialVersionUID = -6303977242371907932L;
	@SuppressWarnings("unused")
	private String nodo;
	private List<Listax> nodos ;
	private List<Listax>  tiposFalla;
	private List<Listax>  departamentos;
	private List<Listax>  statusTickets;
	
	
	
	@SuppressWarnings("rawtypes")
	public String cargarNodos( BaseDatos BD){
    	Map session = ActionContext.getContext().getSession();
    	Usuario USUARIO = (Usuario) session.get("ses_usuario");
		if(USUARIO==null){
			this.addActionError("La sesion del usuario ha caducado" ); 
			return ERROR;
		}
    	nodos=new ArrayList<Listax>();
    	String SQL="SELECT r.cod, r.descripcion FROM radio_bases r WHERE r.mostrar=1 ORDER BY r.descripcion";
		Resultado RCS=BD.consultar(SQL);
		  if(RCS.RP){
			  do{ 
				  Listax LST=new Listax();
				  LST.setCod(RCS.getCadena("cod"));
				  LST.setDescripcion(RCS.getCadena("descripcion").toUpperCase());
				  nodos.add(LST);
			  }while(RCS.sigItem()); 
		  }
		return SUCCESS;  
	}
	
	@SuppressWarnings("rawtypes")
	public String cargarTiposFalla( BaseDatos BD){
    	Map session = ActionContext.getContext().getSession();
    	Usuario USUARIO = (Usuario) session.get("ses_usuario");
		if(USUARIO==null){
			this.addActionError("La sesion del usuario ha caducado" ); 
			return ERROR;
		}
		tiposFalla=new ArrayList<Listax>();
    	String SQL="SELECT  tf.cod, tf.descripcion FROM mon_tipos_falla tf WHERE tf.mostrar=1 ORDER BY tf.descripcion";
		Resultado RCS=BD.consultar(SQL);
		  if(RCS.RP){
			  do{ 
				  Listax LST=new Listax();
				  LST.setCod(RCS.getCadena("cod"));
				  LST.setDescripcion(RCS.getCadena("descripcion").toUpperCase());
				  tiposFalla.add(LST);
			  }while(RCS.sigItem()); 
		  }
		return SUCCESS;  
	}
	
	@SuppressWarnings("rawtypes")
	public String cargarDepartamentos( BaseDatos BD){
    	Map session = ActionContext.getContext().getSession();
    	Usuario USUARIO = (Usuario) session.get("ses_usuario");
		if(USUARIO==null){
			this.addActionError("La sesion del usuario ha caducado" ); 
			return ERROR;
		}
    	departamentos=new ArrayList<Listax>();
    	String SQL="SELECT D.cod, D.descripcion FROM departamentos D WHERE D.activo='1' AND D.atc=1 ORDER BY D.descripcion";
		Resultado RCS=BD.consultar(SQL);
		  if(RCS.RP){
			  do{ 
				  Listax LST=new Listax();
				  LST.setCod(RCS.getCadena("cod"));
				  LST.setDescripcion(RCS.getCadena("descripcion").toUpperCase());
				  departamentos.add(LST);
			  }while(RCS.sigItem()); 
		  }
		return SUCCESS;  
	}
	
	
	@SuppressWarnings("rawtypes")
	public String cargarStatusTickets( BaseDatos BD){
    	Map session = ActionContext.getContext().getSession();
    	Usuario USUARIO = (Usuario) session.get("ses_usuario");
		if(USUARIO==null){
			this.addActionError("La sesion del usuario ha caducado" ); 
			return ERROR;
		}
    	statusTickets=new ArrayList<Listax>();
    	String SQL="SELECT S.cod, S.descripcion FROM status_tickets S WHERE S.mostrar='1' ORDER BY S.descripcion";
		Resultado RCS=BD.consultar(SQL);
		  if(RCS.RP){
			  do{ 
				  Listax LST=new Listax();
				  LST.setCod(RCS.getCadena("cod"));
				  LST.setDescripcion(RCS.getCadena("descripcion").toUpperCase());
				  statusTickets.add(LST);
			  }while(RCS.sigItem()); 
		  }
		return SUCCESS;  
	}
	
	
	@SuppressWarnings("rawtypes")
	public String getJSON(){
		Map session = ActionContext.getContext().getSession();
    	Usuario USUARIO = (Usuario) session.get("ses_usuario");
		if(USUARIO==null){
			this.addActionError("La sesion del usuario ha caducado" ); 
			return ERROR;
		}
		Conectar BASE=new Conectar();
		if(BASE.getMsg().equals("SI")){
			cargarNodos(BASE.getBaseDatos());
			cargarTiposFalla(BASE.getBaseDatos());
			cargarDepartamentos(BASE.getBaseDatos());
			cargarStatusTickets(BASE.getBaseDatos());
			BASE.getBaseDatos().cerrarConexion();
		  	return SUCCESS;
		}else{
			this.addActionError("No hay conexion al servidor");
			return ERROR;
		}
	}
	
	
	/*---------------------------------GETTERS AND SETTERS-------------------------*/

	public List<Listax> getNodos() {
		return nodos;
	}

	public void setNodos(List<Listax> nodos) {
		this.nodos = nodos;
	}

	public List<Listax> getTiposFalla() {
		return tiposFalla;
	}

	public void setTiposFalla(List<Listax> tiposFalla) {
		this.tiposFalla = tiposFalla;
	}

	public List<Listax> getDepartamentos() {
		return departamentos;
	}

	public void setDepartamentos(List<Listax> departamentos) {
		this.departamentos = departamentos;
	}

	public List<Listax> getStatusTickets() {
		return statusTickets;
	}

	public void setStatusTickets(List<Listax> statusTickets) {
		this.statusTickets = statusTickets;
	}
	
	
	

}
